package com.ljh.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.ljh.pojo.SList;
import com.ljh.pojo.Singer;
import com.ljh.pojo.Song;
import com.ljh.vo.*;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface ListService extends IService<SList> {


    public List<SList> findListByStyle(String style);

    public Object findSongByListId(Integer id);

    public List<SList> findPerfer();

    public List<SList> findRandom();

    public List<SList> findThree(Integer id);

    public List<MyListLike> findMyListLike(Integer id);

    public List<SList> findListById(Integer id);

    public List<SList> findListLikeById(Integer id);

    public void insertNewList(NewList newList);

    public void insertLike(Integer userId ,Integer listId);

    public LikeUserVo findGuanxiByUserList(Integer userId,Integer listId);

    public void insertSongToList(Integer listId,Integer songId);

    public List_SongVo findListSongVo(Integer listId,Integer songId);

    /**
     * 通过userId删除
     * @param userId
     */
    public void deleteListById(Integer userId);

    /**
     * 删除收藏歌单
     * @param userId
     */
    public void deleteLikeById(Integer userId);

    /**
     * 通过listId删除歌单表
     * @param listId
     */
    public void deleteListByListId(Integer listId);

    public void deleteSongListBylistId(Integer listId);

    public void deleteLikeBylistId(Integer listId);

    public void updateListPhoto(String listPhoto,Integer listId);

    public void deleteListSongBySongId(Integer songId);

    public SList findSlistByListId(Integer listId);

    /**
     * 通过songId和listId定位删除关系
     * @param songId
     * @param listId
     */
    public void deleteListInfoSong(Integer songId,Integer listId);

    /**
     * 修改list的信息
     * @param slist
     */
    public void updateListInfo(@Param("slist") SList slist);

    public List<Song> findSongListInsert(String songName);

    public void songToInsertList(Integer listId,Integer songId);

    public List<SexVo> findListStyle();
}
